Technical Field
The present invention relates generally to computer programming and, in particular, to automatic program synthesis using Monadic Second-Order Logic.
Description of the Related Art
Program synthesis is a special form of automatic programming. The goal of program synthesis is to automatically construct a program that satisfies a given high-level specification. However, among other deficiencies, current solutions for program synthesis are not able to handle second-order functions. An exemplary second-order function is the map function found in many computer programming languages (e.g., such as the MetaLanguage (ML) programming language). Another exemplary second-order function is qsort in the C programming language.
Thus, there is a need for improved program synthesis that overcomes the aforementioned deficiency.